package com.modelo.entity;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

 
@Entity
@Table(name = "subtarea", catalog = "firmes")
public class Subtarea implements java.io.Serializable {

	 
	private static final long serialVersionUID = 1L;
	
	private Integer idsubtarea;
	private Tarea tarea;
	private String nombre;
	private String enlace;
	private String imagen;
	private Set<Rolsubtarea> rolsubtareas = new HashSet<Rolsubtarea>(0);
 
	public Subtarea() {
	}
 
	public Subtarea(Integer idsubtarea, Tarea tarea, String nombre) {
		this.idsubtarea = idsubtarea;
		this.tarea = tarea;
		this.nombre = nombre;
	}
 
	public Subtarea(Integer idsubtarea, Tarea tarea, String nombre,
			String enlace, String imagen, Set<Rolsubtarea> rolsubtareas) {
		this.idsubtarea = idsubtarea;
		this.tarea = tarea;
		this.nombre = nombre;
		this.enlace = enlace;
		this.imagen = imagen;
		this.rolsubtareas = rolsubtareas;
	}
 
	@Id
	@GeneratedValue
	@Column(name = "idsubtarea", unique = true, nullable = false)
	public Integer getIdsubtarea() {
		return this.idsubtarea;
	}

	public void setIdsubtarea(Integer idsubtarea) {
		this.idsubtarea = idsubtarea;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idtarea", nullable = false)
	public Tarea getTarea() {
		return this.tarea;
	}

	public void setTarea(Tarea tarea) {
		this.tarea = tarea;
	}

	@Column(name = "nombre", nullable = false, length = 45)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "enlace", length = 100)
	public String getEnlace() {
		return this.enlace;
	}

	public void setEnlace(String enlace) {
		this.enlace = enlace;
	}

	@Column(name = "imagen", length = 150)
	public String getImagen() {
		return this.imagen;
	}

	public void setImagen(String imagen) {
		this.imagen = imagen;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "subtarea")
	public Set<Rolsubtarea> getRolsubtareas() {
		return this.rolsubtareas;
	}

	public void setRolsubtareas(Set<Rolsubtarea> rolsubtareas) {
		this.rolsubtareas = rolsubtareas;
	}

}